The present invention relates to a method for managing meta data in cache and using meta data to access customer data.
Computing systems often include one or more host computers (xe2x80x9chostsxe2x80x9d) for processing data and running application programs, direct access storage devices (DASDs) for storing data, and a storage controller for controlling the transfer of data between the hosts and the DASD. In addition to storing actual data, also known as user or customer data, the control unit often maintains meta data which provides information on tracks or blocks of data in the DASD or in a cache of the storage controller. The storage controller processes the meta data during certain operations on the actual data represented by the meta data to improve the speed and efficiency of those requested operations.
There are numerous types of meta data, such as summary information, partial-copy information, historical information, copy services information, and log structured array information. Summary information summarizes the customer data, including information on the format of a block or track of customer data, such as a count-key-data (CKD) track. In this way, information on the actual customer data that would otherwise have to be gleaned from the customer data in a time consuming process is readily available. Partial copy information contains a copy of a portion of the actual customer data to improve destage performance. Historical information records historical usage of the customer data. Historical data may be used to predict future use of the user or customer data. Copy services information contains bit maps that indicate tracks of the customer data that were modified and not yet copied to a secondary site. The log structured array (LSA) information maintains an LSA directory and related data to manage the LSA.
Typically, during initialization of the DASD, meta data is copied from the DASD to the storage controller. As the size of a meta data track and the types of meta data maintained increases, an ever increasing amount of cache storage and processing capacity is dedicated to meta data, to the exclusion of other types of data. In addition, because cache storage is volatile (data stored in cache will be lost in the event of a power loss), some conventional computing systems save meta data that has been modified in cache into separate, battery-backed-up, non-volatile storage units (NVS) for recovery purposes. Such implementations add additional costs and overhead by consuming processor and memory resources to maintain and update the meta data in NVS.
To conserve NVS capacity, some computing systems will not back-up meta data in NVS. The problem with not providing an NVS backup is that microcode errors, power loss, and other error conditions may cause some or all of the meta data stored in cache to become invalid or lost. In such case, the storage controller must rebuild the meta data from the actual data in the DASD. This process of recovering lost meta data can be time-consuming, as meta data often represents thousands of customer tracks. In conventional computing systems when modified meta data is not backed-up into NVS, lost meta data is rebuilt in a piecemeal process every time its associated customer data is staged into cache for other purposes. The need to rebuild the meta data delays the recovery of meta data and also degrades data processing operations.
Thus, there is a need in the art for an improved method and system for managing meta data.
To provide an improved system for managing meta data, preferred embodiments provide a method, system, and article of manufacture for managing meta data. The meta data provides information on data maintained in a storage device. The system receives a request for meta data from a process and determines whether the requested meta data is in cache. After determining that the requested meta data is not in cache, the system determines whether there are a sufficient number of allocatable segments in cache to stage in the meta data and allocates segments in cache to store the meta data after determining that there are enough allocatable segments in cache. The system stages the requested meta data into the allocated segments.
In further embodiments, the system receives a request for meta data from a first process and determines whether the meta data is in cache. After determining that the requested meta data is in cache, the system determines whether a second process has exclusive access to the meta data in cache. After determining that the second process does not have exclusive access, the system indicates to the first process that access to the meta data is permitted. Otherwise, after determining that the second process has exclusive access, the system notifies the first process that access to the meta data track will be provided at a later time when the second process relinquishes exclusive access.
In yet further embodiments, a system processes a request to end track access to a meta data track from a process. A queue includes access requests to a meta data track. The system receives a request from the process to terminate access to the meta data track and determines whether the process requesting to terminate access has exclusive access to the meta data track. The system processes the queue to select an access request and grants access to the meta data track to the selected access request. The system determines whether the selected access request is for exclusive access to the meta data track. After determining that the previous selected access request is not for exclusive access, the system grants access to the meta data track to an additional selected access request in the queue. In preferred embodiments, the requests in the queue are processed until all requests are processed or a request is made for exclusive access.
With preferred embodiments, meta data is paged into cache on demand to improve cache utilization and minimize cache memory requirements. Further, the track identifier or address of modified meta data is stored into NVS to maintain information on the meta data tracks that were modified and avoid consuming NVS storage space with the actual meta data. Preferred embodiments further provide mechanisms to serialize access requests to a meta data track and process access requests when another processing unit has exclusive access to the meta data track. Preferred embodiments further provide mechanisms for determining whether a process requesting meta data will wait for the meta data to become available in cache if segments are unavailable for the meta data or another process has exclusive access to the meta data.